Circuitry in an electronic computer containing a summing unit which is connected with inputs and outputs to an accumulator register which consists of cells for the storing of codes of a base and containing a control unit, controlling the summation of numbers especially of products from factors, which are delivered by the computer in a floating-point representation to the circuitry, and controlling rounding and delivering of the generated sum from the accumulator register to the computer in a floating-point representation.
Known computers generate arithmetic operations for integer numbers correctly with full precision, in a certain range of the integers which is represented on the computer.
Generally a real number is represented in form of an infinite decimal- (or b-al) fraction, eg. .pi.=3.14159 . . . .
Computers can only approximate such terms i.a. represent them with a finite number of digits. Representation in the form of fixed or floating-point numbers are common. In this representation approximation of real numbers only a finite number of digits is used.
Such representation of numbers on the computer may cause the fact, that, after the performing of operations +, -, .times., / corresponding to the ordinary rules for real numbers, the result in general does not fit exactly to the basic scheme of numbers, which can be represented on the computer as floating or fixed point numbers, e.g. the multiplication causes doubling of the mantissa's length. Even if the result of processing of two numbers, representable on the computer, is another number, which is representable on the computer, the operations +, -, .times., / can be performed only by approximation. In general such approximation procedures are called rounded operations.
During the past, such approximation operations for numbers, which are representable on the computer, were implemented more or less according to intuitions. All computers on the market today suffer on more or less serious deficiencies in this respect.
In case of higher levelled mathematical structures such as complex numbers or matrices, the operations of the computer are defined by the following considerations. Formulas are known to derive operations with complex numbers or matrices from operations with real number. Operations of complex numbers and matrices representable on the computer are defined with the same formulas where instead of the real operations their approximations for computer representable numbers (floating-point numbers) are executed. This usual method in case of numerical algorithms causes complicated error propagation and error analysis.
A remedial measure against such deficiencies of known operations consists in a theory, developed by the inventor, which is presented in extensive form in:
Kulisch, U. and Miranker, W. L.: Computer Arithmetic in Theory and Practice, Academic Press 1981.
There it is proposed to define operations of computers for real number, real vectors, real matrices, complex numbers, complex vectors, and complex matrices as well as intervals of real and complex numbers, vectors and matrices according to the principles of semimorphism, which will be given in the following chapter shortly.
Let M represent one of the given sets of numbers and N the corresponding subset of M, which is representable on the computer. In this case operations of N must conform to the following rules:
(For explanation of the used symbols compare Tab. 1) ##EQU1##
In this case .quadrature.: M.fwdarw.N is a mapping with the following properties: ##EQU2##
Thus .quadrature. is a monotone antisymmetric rounding operation.
In the stated sets of intervals, the rounding operation must satisfy the additional equation. ##EQU3## Here .quadrature. denotes the inclusion.
The mapping of real numbers R into a subset of numbers (floating-point numbers) representable on the computer we define additionally two monotone, directed rounding operators .increment. and .gradient., by (R1), (R2), and by ##EQU4## as well as operations corresponding to the above mentioned rounding operators in conjuction with equation (RG). Questions of uniqueness are discussed in: Kulisch, U. and Miranker, W. L.: Computer Arithmetic in Theory and Practice, Academic Press 1981.
The monotone downwardly directed rounding means, that the whole interval between two maschine numbers is mapped to the left number. The monotone upwardly directed rounding has the opposite property.
An extensive theory that has been developed shows that a number of extremely useful properties of the explained roundings and connected operations hold in the spaces mentioned above. E.g. all operations defined in this way provide for all spaces mentioned above maximum accuracy, that means no further element of the applied grid lies between the correct result of an operation a*b and its approximation a * b.
Operations, defined by the above outlined new theory, are especially in cases of higher level spaces (complex numbers, matrices etc.) fundamentally different to the corresponding operations implemented in known computers.
Computers available today do not perform operations corresponding to the above given formulas. Implementation of rounding and connecting operations corresponding to the above mentioned formulas for complex numbers and complex intervals, for real and complex vectors and matrices as well as real and complex interval vectors and interval matrices by means of hardware elements according to the invention out-dates the present state of engineer's computers.
Along with the theory, it also has been shown that all these operations can be implemented on the highest level of computer language if for the mapping of the real numbers onto computer representable floatin-point numbers three roundings are made available by the computer, which are a monotone antisymmetric rounding .circle. (e.g. rounding to the nearest computer representable number), the two monotone and directed roundings .gradient. and .increment. along with the operations defined by (RG) and these roundings for addition (+), substraction (-), multiplication (.multidot.), division (/) of computer representable floating-point numbers as well as for scalar product (*) of two vectors of a certain dimension n.
Thus 15 basic connecting operations exist corresponding to following symbols:
.circle.+ .circle.- .circle..multidot. .circle./ .circle.* + - .multidot. / * + - .multidot. / * .
In traditional numerical analysis only four of these operations with a rounding according to common rules are used: .circle.+ .circle.- .circle..multidot. .circle./ .
The so called interval arithmetic makes use of eight operations wich are: + - .multidot. / and + - .multidot. / .
Hardware implementations of the operations of addition, subtraction, multiplication and division given by equation (RG) and the three roundings .circle. , .gradient.,.increment. represent state of the art.
But hardware implementation of such operations like scalar products (inner products of vectors) of any relevant dimension corresponding to RG in connection with three roundings .circle. , .gradient., .increment. representing the operastions .circle.* , * , * on computers, as will be explained now, are completely new and inventive.
If T denotes the set of computer representable floating-point numbers, then for vectors a=(a.sub.i) and b=(b.sub.i) of floating-point numbers a.sub.i, b.sub.i .epsilon.T; i=1(1)n the operations .circle.* , * and * are defined by ##EQU5## for any given n. Multiplication and addition symbols on the right hand side denote in these cases correct multiplication and addition of real numbers. (Explanation of symbols: compare tab. 1)
Implementation of these operations, by means of software elements, provides generating of the demanded results with maximum accuracy, but extend by factors the time expenditure on such operations if executed in hardware.
Additionally a fair amount of internal high speed store is occupied, while performing these operation. Thus, it is not available for other often required operations, which also decelerates expenditure on organization of programs.